#include<stdio.h>
int main()
{
	int i,s,a[10][10]={1};              //声明一个二维数组并把a[0][0]初始化为1，其他默认初始化为0，此数组用来保存数阵的值
	for(i=0;i<10;i++)                   //循环把每行第一个数赋值为1，因为每行第一个数都为1并不需要计算得到
		a[i][0]=1; 
	for(i=1;i<10;i++)                   //最外层循环，每个二维数组的输入(输出)都需要使用双重for循环来实现，这个就不需要解释了吧
	{	
		for(s=1;s<10;s++)
		{
			if(a[i-1][s-1]!=0)          //因为每一行的除了第一个数1其他数值都是需要上一行的头顶的数值和左边的一个数值相加得到
			{                           //所以需要判断头顶左边的数值不为零，为0的话头顶的数值也一定为零，两者相加也为0，那就没有
				a[i][s]=a[i-1][s-1]+a[i-1][s];//意义了，这是为减少运算量而做的判断，如果不在意电脑运算量也可以删掉这个判断，但最好不要
				printf("%d\t",a[i-1][s-1]);   //结果计算出来并赋值后直接输出，也可以等全部数值计算完成后用双重for循环输出，就如程序
			}                              //最后被注释掉的代码一样，但要使用双重for循环需要删掉这里的一点代码
			else                        
			break;	                     //判断为零直接进行下一轮循环
		}
		printf("\n");                    //输出换行
	 } 
	
	/*for(i=0;i<10;i++)
	{
		for(s=0;s<10;s++)
		{
			if(a[i][s]!=0)
			printf("%d\t",a[i][s]);
			else
			break;
		}
		printf("\n");
	}
	
	*/
	
	return 0;
}
